--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
docs/source/hardware.rst ec8d43a548017de41cdf73e7e3eb9844a5d349cd (ec8d43a5) Text, 12.74 KB
Tb4b4b4.. Tff7b72_hardware-main:
Tc9d1d9***********************
Tc9d1d9Communications Hardware
Tc9d1d9***********************
One of the truly valuable aspects of Reticulum is the ability to use it over
almost any conceivable kind of communications medium. The Te6edf3:ref:Te6edf3`interface types<interfaces-main>`
available for configuration in Reticulum are flexible enough to cover the use
of most wired and wireless communications hardware available, from decades-old
packet radio modems to modern millimeter-wave backhaul systems.
If you already have or operate some kind of communications hardware, there is a
very good chance that it will work with Reticulum out of the box. In case it does
not, it is possible to provide the necessary glue with very little effort using
for example the Te6edf3:ref:Te6edf3`PipeInterface<interfaces-pipe>` or the Te6edf3:ref:Te6edf3`TCPClientInterface<interfaces-tcpc>`
in combination with code like Ta5d6ff`TCP KISS Server Tffd700<https://github.com/simplyequipped/tcpkissserver>Ta5d6ff`_
by Ta5d6ff`simplyequipped Tffd700<https://github.com/simplyequipped>Ta5d6ff`_.
It is also very easy to write and load Te6edf3:ref:Te6edf3`custom interface modules<interfaces-custom>`
into Reticulum, allowing you to communicate with more or less anything you can think of.
While this broad support and flexibility is very useful, an abundance of options
can sometimes make it difficult to know where to begin, especially when you are
starting from scratch.
This chapter will outline a few different sensible starting paths to get
real-world functional wireless communications up and running with minimal cost
and effort. Two fundamental devices categories will be covered, *RNodes* and
*WiFi-based radios*. Additionally, other common options will be briefly described.
Knowing how to employ just a few different types of hardware will make it possible
to build a wide range of useful networks with little effort.
Tc9d1d9Combining Hardware Types
Tc9d1d9========================
It is useful to combine different link and hardware types when designing and
building a network. One useful design pattern is to employ high-capacity point-to-point
links based on WiFi or millimeter-wave radios (with high-gain directional antennas)
for the network backbone, and using LoRa-based RNodes for covering large areas with
connectivity for client devices.
Tb4b4b4.. Tff7b72_rnode-main:
Tc9d1d9RNode
Tc9d1d9=====
Reliable and general-purpose long-range digital radio transceiver systems are
commonly either very expensive, difficult to set up and operate, hard to source,
power-hungry, or all of the above at the same time. In an attempt to alleviate
this situation, the transceiver system *RNode* was designed. It is important to
note that RNode is not one specific device, from one particular vendor, but
*an open plaform* that anyone can use to build interoperable digital transceivers
suited to their needs and particular situations.
An RNode is a general purpose, interoperable, low-power and long-range, reliable,
open and flexible radio communications device. Depending on its components, it can
operate on many different frequency bands, and use many different modulation
schemes, but most commonly, and for the purposes of this chapter, we will limit
the discussion to RNodes using *LoRa* modulation in common ISM bands.
**Avoid Confusion!** RNodes can use LoRa as a *physical-layer modulation*, but it
does not use, and has nothing to do with the *LoRaWAN* protocol and standard, commonly
used for centrally controlled IoT devices. RNodes use *raw LoRa modulation*, without
any additional protocol overhead. All high-level protocol functionality is handled
directly by Reticulum.
Tb4b4b4.. Tff7b72_rnode-creating:
Tc9d1d9Creating RNodes
Tc9d1d9^^^^^^^^^^^^^^^
RNode has been designed as a system that is easy to replicate across time and
space. You can put together a functioning transceiver using commonly available
components, and a few open source software tools. While you can design and build RNodes
completely from scratch, to your exact desired specifications, this chapter
will explain the easiest possible approach to creating RNodes: Using common
LoRa development boards. This approach can be boiled down to two simple steps:
T79c0ff1. Obtain one or more Te6edf3:ref:Te6edf3`supported development boards<rnode-supported>`
T79c0ff2. Install the RNode firmware with the Te6edf3:ref:Te6edf3`automated installer<rnode-installation>`
Once the firmware has been installed and provisioned by the install script, it
is ready to use with any software that supports RNodes, including Reticulum.
The device can be used with Reticulum by adding an Te6edf3:ref:Te6edf3`RNodeInterface<interfaces-rnode>`
to the configuration.
Tb4b4b4.. Tff7b72_rnode-supported:
Tc9d1d9Supported Boards and Devices
Tc9d1d9^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To create one or more RNodes, you will need to obtain supported development
boards or completed devices. The following boards and devices are supported
by the auto-installer.
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_tbeam_supreme.png
T56d364:width: 75%
T56d364:align: center
Tc9d1d9LilyGO T-Beam Supreme
Tc9d1d9"""""""""""""
T79c0ff- **Transceiver IC** Semtech SX1262 or SX1268
T79c0ff- **Device Platform** ESP32
T79c0ff- **Manufacturer** Ta5d6ff`LilyGO Tffd700<https://lilygo.cn>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_tbeam.png
T56d364:width: 75%
T56d364:align: center
Tc9d1d9LilyGO T-Beam
Tc9d1d9"""""""""""""
T79c0ff- **Transceiver IC** Semtech SX1262, SX1268, SX1276 or SX1278
T79c0ff- **Device Platform** ESP32
T79c0ff- **Manufacturer** Ta5d6ff`LilyGO Tffd700<https://lilygo.cn>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_t3s3.png
T56d364:width: 50%
T56d364:align: center
Tc9d1d9LilyGO T3S3
Tc9d1d9"""""""""""
T79c0ff- **Transceiver IC** Semtech SX1262, SX1268, SX1276 or SX1278
T79c0ff- **Device Platform** ESP32
T79c0ff- **Manufacturer** Ta5d6ff`LilyGO Tffd700<https://lilygo.cn>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_rak4631.png
T56d364:width: 45%
T56d364:align: center
Tc9d1d9RAK4631-based Boards
Tc9d1d9""""""""""""""""""""
T79c0ff- **Transceiver IC** Semtech SX1262 or SX1268
T79c0ff- **Device Platform** nRF52
T79c0ff- **Manufacturer** Ta5d6ff`RAK Wireless Tffd700<https://www.rakwireless.com>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_opencomxl.png
T56d364:width: 45%
T56d364:align: center
Tc9d1d9OpenCom XL
Tc9d1d9""""""""""""""""""""
T79c0ff- **Transceiver ICs** Semtech SX1262 and SX1280 (dual transceiver)
T79c0ff- **Device Platform** nRF52
T79c0ff- **Manufacturer** Ta5d6ff`Liberated Embedded Systems Tffd700<https://liberatedsystems.co.uk/>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_rnodev2.png
T56d364:width: 68%
T56d364:align: center
Tc9d1d9Unsigned RNode v2.x
Tc9d1d9"""""""""""""""""""
T79c0ff- **Transceiver IC** Semtech SX1276 or SX1278
T79c0ff- **Device Platform** ESP32
T79c0ff- **Manufacturer** Ta5d6ff`unsigned.io Tffd700<https://unsigned.io>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_t3v21.png
T56d364:width: 46%
T56d364:align: center
Tc9d1d9LilyGO LoRa32 v2.1
Tc9d1d9""""""""""""""""""
T79c0ff- **Transceiver IC** Semtech SX1276 or SX1278
T79c0ff- **Device Platform** ESP32
T79c0ff- **Manufacturer** Ta5d6ff`LilyGO Tffd700<https://lilygo.cn>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_t3v20.png
T56d364:width: 46%
T56d364:align: center
Tc9d1d9LilyGO LoRa32 v2.0
Tc9d1d9""""""""""""""""""
T79c0ff- **Transceiver IC** Semtech SX1276 or SX1278
T79c0ff- **Device Platform** ESP32
T79c0ff- **Manufacturer** Ta5d6ff`LilyGO Tffd700<https://lilygo.cn>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_t3v10.png
T56d364:width: 46%
T56d364:align: center
Tc9d1d9LilyGO LoRa32 v1.0
Tc9d1d9""""""""""""""""""
T79c0ff- **Transceiver IC** Semtech SX1276 or SX1278
T79c0ff- **Device Platform** ESP32
T79c0ff- **Manufacturer** Ta5d6ff`LilyGO Tffd700<https://lilygo.cn>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_tdeck.png
T56d364:width: 45%
T56d364:align: center
Tc9d1d9LilyGO T-Deck
Tc9d1d9"""""""""""""
T79c0ff- **Transceiver IC** Semtech SX1262 or SX1268
T79c0ff- **Device Platform** ESP32
T79c0ff- **Manufacturer** Ta5d6ff`LilyGO Tffd700<https://lilygo.cn>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_techo.png
T56d364:width: 45%
T56d364:align: center
Tc9d1d9LilyGO T-Echo
Tc9d1d9"""""""""""""
T79c0ff- **Transceiver IC** Semtech SX1262 or SX1268
T79c0ff- **Device Platform** nRF52
T79c0ff- **Manufacturer** Ta5d6ff`LilyGO Tffd700<https://lilygo.cn>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_t114.png
T56d364:width: 58%
T56d364:align: center
Tc9d1d9Heltec T114
Tc9d1d9"""""""""""
T79c0ff- **Transceiver IC** Semtech SX1262 or SX1268
T79c0ff- **Device Platform** nRF52
T79c0ff- **Manufacturer** Ta5d6ff`Heltec Automation Tffd700<https://heltec.org>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_heltec32v4.png
T56d364:width: 58%
T56d364:align: center
Tc9d1d9Heltec LoRa32 v4.0
Tc9d1d9""""""""""""""""""
T79c0ff- **Transceiver IC** Semtech SX1262
T79c0ff- **Device Platform** ESP32
T79c0ff- **Manufacturer** Ta5d6ff`Heltec Automation Tffd700<https://heltec.org>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_heltec32v30.png
T56d364:width: 58%
T56d364:align: center
Tc9d1d9Heltec LoRa32 v3.0
Tc9d1d9""""""""""""""""""
T79c0ff- **Transceiver IC** Semtech SX1262 or SX1268
T79c0ff- **Device Platform** ESP32
T79c0ff- **Manufacturer** Ta5d6ff`Heltec Automation Tffd700<https://heltec.org>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72imageTb4b4b4:: graphics/board_heltec32v20.png
T56d364:width: 58%
T56d364:align: center
Tc9d1d9Heltec LoRa32 v2.0
Tc9d1d9""""""""""""""""""
T79c0ff- **Transceiver IC** Semtech SX1276 or SX1278
T79c0ff- **Device Platform** ESP32
T79c0ff- **Manufacturer** Ta5d6ff`Heltec Automation Tffd700<https://heltec.org>Ta5d6ff`_
------------
Tb4b4b4.. Tff7b72_rnode-installation:
Tc9d1d9Installation
Tc9d1d9^^^^^^^^^^^^
Once you have obtained compatible boards, you can install the Ta5d6ff`RNode Firmware Tffd700<https://github.com/markqvist/RNode_Firmware>Ta5d6ff`_
using the Ta5d6ff`RNode Configuration Utility Tffd700<https://github.com/markqvist/rnodeconfigutil>Ta5d6ff`_.
If you have installed Reticulum on your system, the Ta5d6ff``Ta5d6ffrnodeconfTa5d6ff`` program will already be
available. If not, make sure that Ta5d6ff``Ta5d6ffPython3Ta5d6ff`` and Ta5d6ff``Ta5d6ffpipTa5d6ff`` is installed on your system, and
then install Reticulum with with Ta5d6ff``Ta5d6ffpipTa5d6ff``:
Tb4b4b4.. Tff7b72codeTb4b4b4::
pip install rns
Once installation has completed, it is time to start installing the firmware on your
devices. Run Ta5d6ff``Ta5d6ffrnodeconfTa5d6ff`` in auto-install mode like so:
Tb4b4b4.. Tff7b72codeTb4b4b4::
rnodeconf --autoinstall
The utility will guide you through the installation process by asking a series of
questions about your hardware. Simply follow the guide, and the utility will
auto-install and configure your devices.
Tb4b4b4.. Tff7b72_rnode-usage:
Tc9d1d9Usage with Reticulum
Tc9d1d9^^^^^^^^^^^^^^^^^^^^
When the devices have been installed and provisioned, you can use them with Reticulum
by adding the Te6edf3:ref:Te6edf3`relevant interface section<interfaces-rnode>` to the configuration
file of Reticulum. In the configuraion you can specify all interface parameters,
such as serial port and on-air parameters.
Tc9d1d9WiFi-based Hardware
Tc9d1d9===================
It is possible to use all kinds of both short- and long-range WiFi-based hardware
with Reticulum. Any kind of hardware that fully supports bridged Ethernet over the
WiFi interface will work with the Te6edf3:ref:Te6edf3`AutoInterface<interfaces-auto>` in Reticulum.
Most devices will behave like this by default, or allow it via configuration options.
This means that you can simply configure the physical links of the WiFi based devices,
and start communicating over them using Reticulum. It is not necessary to enable any IP
infrastructure such as DHCP servers, DNS or similar, as long as at least Ethernet is
available, and packets are passed transparently over the physical WiFi-based devices.
Tb4b4b4.. Tff7b72onlyTb4b4b4:: html
Tb4b4b4 .. Tff7b72imageTb4b4b4:: graphics/radio_rblhg5.png
T56d364:width: 49%
Tb4b4b4 .. Tff7b72imageTb4b4b4:: graphics/radio_is5ac.png
T56d364:width: 49%
Below is a list of example WiFi (and similar) radios that work well for high capacity
Reticulum links over long distances:
T79c0ff- Ta5d6ff`Ubiquiti airMAX radios Tffd700<https://store.ui.com/collections/operator-airmax-devices>Ta5d6ff`_
T79c0ff- Ta5d6ff`Ubiquiti LTU radios Tffd700<https://store.ui.com/collections/operator-ltu>Ta5d6ff`_
T79c0ff- Ta5d6ff`MikroTik radios Tffd700<https://mikrotik.com/products/group/wireless-systems>Ta5d6ff`_
This list is by no means exhaustive, and only serves as a few examples of radio hardware
that is relatively cheap while providing long range and high capacity for Reticulum
networks. As in all other cases, it is also possible for Reticulum to co-exist with IP
networks running concurrently on such devices.
Tc9d1d9Ethernet-based Hardware
Tc9d1d9=======================
Reticulum can run over any kind of hardware that can provide a switched Ethernet-based
medium. This means that anything from a plain Ethernet switch, to fiber-optic systems,
to data radios with Ethernet interfaces can be used by Reticulum.
The Ethernet medium does not need to have any IP infrastructure such as DHCP servers
or routing set up, but in case such infrastructure does exist, Reticulum will simply
co-exist with.
To use Reticulum over Ethernet-based mediums, it is generally enough to use the included
Te6edf3:ref:Te6edf3`AutoInterface<interfaces-auto>`. This interface also works over any kind of
virtual networking adapter, such as Ta5d6ff``Ta5d6fftunTa5d6ff`` and Ta5d6ff``Ta5d6fftapTa5d6ff`` devices in Linux.
Tc9d1d9Serial Lines & Devices
Tc9d1d9======================
Using Reticulum over any kind of raw serial line is also possible with the
Te6edf3:ref:Te6edf3`SerialInterface<interfaces-serial>`. This interface type is also useful for
using Reticulum over communications hardware that provides a serial port interface.
Tc9d1d9Packet Radio Modems
Tc9d1d9===================
Any packet radio modem that provides a standard KISS interface over USB, serial or TCP
can be used with Reticulum. This includes virtual software modems such as
Ta5d6ff`FreeDV TNC Tffd700<https://github.com/xssfox/freedv-tnc>Ta5d6ff`_ and Ta5d6ff`Dire Wolf Tffd700<https://github.com/wb2osz/direwolf>Ta5d6ff`_.
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────